Obtaining queue measurement data for a range of logical control unit queues

ABSTRACT

I/O measurement data for channels attached to logical control unit queues is obtained related to a plurality of logical control unit queues. A store secondary queue measurement data instruction specifies a range of queues for which extended secondary measurement blocks derived from the I/O measurement data are stored at a memory address specified by the store secondary queue measurement data instruction.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a Division of Ser. No. 10/435,906 Filed May 12, 2003“EXTENDED INPUT/OUTPUT MEASUREMENT FACILITIES” which is assigned to thesame assignee as this application and is hereby incorporated herein byreference in its entirety.

TECHNICAL FIELD

This invention relates, in general, to performance monitoring, and inparticular, to input/output (I/O) measurement facilities used inperformance monitoring.

BACKGROUND OF THE INVENTION

Monitoring the performance of a computing environment includes analyzingmeasurement data collected for that environment. The measurement datathat is collected is used for accounting, capacity planning and/or todetermine where improvements are to be made so that system performancecan be enhanced.

One subsystem of a computing environment for which data is collected isthe I/O subsystem. In one example, an I/O measurement facility, such asthe Resource Management Facility (RMF) offered by International BusinessMachines Corporation, Armonk, N.Y., is used to accumulate data for theI/O subsystem. The data that is collected is associated with variouscomponents of the I/O subsystem, such as subchannels which represent I/Odevices, and is stored in measurement blocks for access by programs. Themeasurement blocks are stored in contiguous memory and thus, aparticular block is accessed by a measurement block origin and index.The data stored in the existing measurement blocks is an accumulation ofdata over a period of time for multiple I/O operations. In order todetermine the measurement data for a particular I/O operation, theoperating system needs to calculate the information for that I/Ooperation by subtracting the counters copied from the measurement blockbefore the I/O operation is started from the values in the measurementblocks after the I/O operation while also dealing with cases where thecounters wrap.

With the ever increasing size of the I/O subsystem, the contiguousstorage of the blocks is becoming cumbersome. Further, the measurementblocks are cumbersome because the operating system cannot dynamicallygrow the contiguous real storage when the system is up and running andadditional devices are dynamically added. Moreover, the existing blocksare inadequate for the information that is desired. Yet further, thetime it takes for a program to calculate the information for aparticular I/O operation is increasing and such calculations lead toinaccuracies because of the insufficient granularity.

Based on the foregoing, enhancements are needed in obtaining measurementdata. For example, a need exists for a capability that enhances themeasurement blocks and the storage thereof. Further, a need exists foran improved capability for obtaining measurement data for a singleoperation.

SUMMARY OF THE INVENTION

The shortcomings of the prior art are overcome and additional advantagesare provided through the provision of a method of facilitating access tomeasurement data of a computing environment. The method includes, forinstance, obtaining measurement data for an I/O operation directly froma measurement unit, wherein the measurement unit includes measurementdata exclusive to the selected I/O operation.

In a further aspect of the present invention, a method of accessingmeasurement blocks of a computing environment is provided. The methodincludes, for instance, using a measurement block address to directlyaccess a measurement block associated with an input/output (I/O)component of the computing environment, wherein the measurement block isaccessed absent use of a measurement block origin and measurement blockindex.

In yet a further aspect of the present invention, a method offacilitating access to measurement data of a computing environment isprovided. The method includes, for instance, providing for one or moreI/O components of an I/O path of a control unit of the computingenvironment individual time measurement data specific to the one or moreI/O components.

System and computer program products corresponding to theabove-summarized methods are also described and claimed herein.

Additional features and advantages are realized through the techniquesof the present invention. Other embodiments and aspects of the inventionare described in detail herein and are considered a part of the claimedinvention.

BRIEF DESCRIPTION OF THE DRAWINGS

The subject matter which is regarded as the invention is particularlypointed out and distinctly claimed in the claims at the conclusion ofthe specification. The foregoing and other objects, features, andadvantages of the invention are apparent from the following detaileddescription taken in conjunction with the accompanying drawings inwhich:

FIG. 1 a depicts one embodiment of a computing environment toincorporate and use one or more aspects of the present invention;

FIG. 1 b depicts one example of an I/O path (e.g., a channel path) usedfor communications in the computing environment of FIG. 1 a, inaccordance with an aspect of the present invention;

FIG. 1C depicts one embodiment of an example of an I/O subsystem (e.g.,a channel subsystem) of FIG. 1 a being configured as a plurality of I/Osubsystem (e.g., channel subsystem) images, in accordance with an aspectof the present invention;

FIG. 1 d depicts further details of a multiple image facility (MIF)image of a channel subsystem image of FIG. 1 c, in accordance with anaspect of the present invention;

FIG. 1 e depicts further details of a channel path set (CPS) of achannel subsystem image of FIG. 1 c, in accordance with an aspect of thepresent invention;

FIG. 2 depicts one example of an extended channel measurement block, inaccordance with an aspect of the present invention;

FIG. 3 depicts one embodiment of an extended secondary queue measurementblock, in accordance with an aspect of the present invention;

FIG. 4 a depicts one embodiment of a request block for a store secondaryqueue measurement data command used in accordance with an aspect of thepresent invention;

FIG. 4 b depicts one embodiment of a response block for the storesecondary queue measurement data command of FIG. 4 a, in accordance withan aspect of the present invention;

FIG. 5 depicts one embodiment of an extended measurement word, inaccordance with an aspect of the present invention; and

FIG. 6 depicts one embodiment of the logic associated with generatingthe extended measurement word and providing it to a program, inaccordance with an aspect of the present invention.

BEST MODE FOR CARRYING OUT THE INVENTION

In accordance with an aspect of the present invention, an extendedmeasurement block facility is provided in which measurement blocks arestored in discontiguous memory and can be accessed via a measurementblock address rather than by using a measurement block origin andmeasurement block index. Further, in one aspect of the invention, themeasurement block is extended to include additional information. In yeta further aspect of the present invention, an extended measurement wordfacility is provided in which measurement data for a single I/Ooperation is returned directly to the program without having the programcalculate the measurement data for that I/O operation. This isfacilitated by an extended measurement word that is returned along withthe ending status of the I/O operation via an instruction. In oneexample, one or more measurement fields in the extended measurement wordmay be stored with a time resolution of approximately one-halfmicrosecond to provide the accuracy needed for measurements associatedwith the single I/O operation.

One embodiment of a computing environment to incorporate and use one ormore aspects of the present invention is described with reference toFIG. 1 a. In one example, computing environment 100 is based on thez/Architecture, offered by International Business Machines Corporation,Armonk, N.Y. The z/Architecture is described in an IBM Publicationentitled “z/Architecture Principles of Operation,” Publication No.SA22-7832-01, October 2001, which is hereby incorporated herein byreference in its entirety.

As one example, computing environment 100 includes a central processorcomplex (CPC) 102 coupled to one or more input/output (I/O) devices 106via one or more control units 108. Central processor complex 102includes, for instance, one or more central processors 110, one or morepartitions 112 (e.g., logical partitions (LP)), a logical partitionhypervisor 114, and an input/output subsystem 115, each of which isdescribed below.

Central processors 110 are physical processor resources allocated to thelogical partition. In particular, each logical partition 112 has one ormore logical processors, each of which represents all or a share of aphysical processor 110 allocated to the partition. The physicalprocessors to which the logical processors are dispatched (by thehypervisor) may be either dedicated to a given partition's logicalprocessors or shared by logical processors configured to multiplesharing logical partitions.

A logical partition functions as a separate system and has one or moreapplications and a resident operating system therein, which may differfor each logical partition. In one embodiment, the operating system isthe z/OS operating system, the z/VM operating system, the Linux onzSeries operating system or the TPF operating system, offered byInternational Business Machines Corporation, Armonk, N.Y.

Logical partitions 112 are managed by a logical partition hypervisor114, which is implemented by Licensed Internal Code running onprocessors 110. The logical partitions and logical partition hypervisoreach comprise one or more programs residing in respective partitions ofcentral storage associated with the central processors. One example oflogical partition hypervisor 114 is the Processor Resource/SystemManager (PR/SM), offered by International Business Machines Corporation,Armonk, N.Y. Further details regarding logical partitions are describedin, for instance, Guyette et al., U.S. Pat. No. 4,564,903, entitled“Partitioned Multiprocessor Programming System,” issued on Jan. 14,1986; Bean et al., U.S. Pat. No. 4,843,541, entitled “Logical ResourcePartitioning Of A Data Processing System,” issued on Jun. 27, 1989; andKubala, U.S. Pat. No. 5,564,040, entitled “Method And Apparatus ForProviding A Server Function In A Logically Partitioned HardwareMachine,” issued on Oct. 8, 1996, each of which is hereby incorporatedherein by reference in its entirety.

Input/output subsystem 115 directs the flow of information betweeninput/output devices 106 and main storage. It is coupled to the centralprocessing complex, in that it can be a part of the central processingcomplex or separate therefrom. The I/O subsystem relieves the centralprocessors of the task of communicating directly with the input/outputdevices and permits data processing to proceed concurrently withinput/output processing. To provide communications, the I/O subsystememploys I/O communications adapters. There are various types ofcommunications adapters including, for instance, channels, I/O adapters,PCI cards, Ethernet cards, Small Computer Storage Interface (SCSI)cards, etc. In the particular example described herein, the I/Ocommunications adapters are channels, and therefore, the I/O subsystemis referred to herein as a channel subsystem. However, this is only oneexample. Other types of I/O subsystems can incorporate and use one ormore aspects of the present invention.

The I/O subsystem uses one or more input/output paths as communicationlinks in managing the flow of information to or from input/outputdevices 106. In this particular example, these paths are called channelpaths, since the communications adapters are channels. Each channel path116 (FIG. 1 b) includes a channel 117 of channel subsystem 115, acontrol unit 108, a link 118 (e.g., serial or parallel) between thechannel and control unit, and one or more I/O devices 106 coupled to thecontrol unit. In other embodiments, channel paths may have multiplecontrol units and/or other components. Further, in another example, itis also possible to have one or more dynamic switches as part of thechannel path. A dynamic switch is coupled to a channel and a controlunit and provides the capability of physically interconnecting any twolinks that are attached to the switch. Further details regarding channelsubsystems are described in Casper et al., U.S. Pat. No. 5,526,484,entitled, “Method And System For Pipelining The Processing Of ChannelCommand Words,” issued on Jun. 11, 1996, which is hereby incorporatedherein by reference in its entirety.

A control unit may be accessible by the channel subsystem by more thanone channel path. Similarly, an I/O device may be accessible by thechannel subsystem through more than one control unit, each having one ormore channel paths to the channel subsystem. The control unit acceptscontrol signals from the channel subsystem, controls the timing of datatransfer over the channel path, and provides indications concerning thestatus of the device. The control unit may be housed separately or itmay be physically and logically integrated with the I/O device, thechannel subsystem, or a central processor.

The I/O device attached to the control unit may be designed to performcertain limited operations, or it may perform many different operations.To accomplish its operations, the device uses detailed signal sequencespeculiar to its type of device. The control unit decodes the commandsreceived from the channel subsystem, interprets them for the particulartype of device, and provides the signal sequence required for theperformance of the operation.

In addition to one or more channels, a channel subsystem includes one ormore subchannels. Each subchannel is provided for and dedicated to anI/O device coupled to the program through the channel subsystem. Eachsubchannel provides information concerning the associated I/O device andits attachment to the channel subsystem. The subchannel also providesinformation concerning I/O operations and functions involving theassociated I/O device. The subchannel provides a logical appearance of adevice to the program and is the means by which the channel subsystemprovides information about associated I/O devices to the centralprocessors, which obtain this information by executing machine I/Oinstructions (e.g., a store subchannel instruction). The subchannel hasinternal storage that includes information in the form of a channelcommand word (CCW) address, one or more channel path identifiers, devicenumber, count, status indication, I/O interruption subclass code,information on path availability and functions pending or beingperformed, as well as information associated with one or more aspects ofthe present invention, as described below. I/O operations are initiatedand terminated with a device by the execution of I/O instructions thatdesignate the subchannel associated with the device.

Further details regarding a channel subsystem are described withreference to FIG. 1 c. A channel subsystem 115 (or other I/O subsystem)is configured as a plurality of channel subsystem images 120 (or otherI/O subsystem images), each identified by a channel subsystem imageidentifier (CSSID) (or other I/O subsystem identifier). In one example,the channel subsystem is configured, either by model dependent means, inwhich configuration controls are used during initialization, or by useof appropriate dynamic I/O configuration commands, as one to 256 channelsubsystem images. Each channel subsystem image appears to a program as acomplete channel subsystem. Each channel subsystem image may have, forinstance, from 1 to 256 unique channel paths, thereby increasing themaximum number of channel paths that may be configured to the channelsubsystem from 256 to 65,536. The configuring of the channel subsystemas a plurality of channel subsystem images is facilitated by a MultipleChannel Subsystem facility (MCSS), one embodiment of which is describedin a U.S. patent application entitled “Multiple Logical Input/OutputSubsystem Facility,” Brice et al., (IBM Docket No. POU920020071US1)filed herewith and incorporated herein by reference in its entirety.

A channel subsystem image 120 includes, for instance, a multiple imagefacility (MIF) 122, which includes one or more (e.g., up to 16) MIFimages, each identified by a MIF image identifier (IID). The multipleimage facility allows each logical partition to achieve independentaccess to the channel paths, control units and I/O devices that areconfigured to and dynamically shared by multiple logical partitions.

As shown in FIG. 1 d, for each MIF image, a separate set of channel pathcontrols and a separate set of subchannel controls are provided by thechannel subsystem. For each MIF image, each set of channel path controlsfor each configured channel path is called a channel path image 124. Thecollection of one or more channel path images associated with thechannel paths that are configured to a MIF image is called a channelpath image set 126. Further, for each MIF image, a separate subchannel,called a subchannel image 128, is provided for each I/O device that isconfigured to the MIF image. A collection of one or more subchannelimages that are configured to a MIF image is called a subchannel imageset 130.

Referring back to FIG. 1 c, in addition to a MIF, a channel subsystemimage 120 also includes a channel path set (CPS) 134. Channel path set134 includes, for instance, one to 256 channel paths 140 (FIG. 1 e)configured to one or more channel path images in the associated MIF.Each channel path is identified by a channel path identifier (CHPID).Each channel path configured to a channel path set may be unique fromother channel paths configured to other provided channel subsystemimages. However, because as many as 256 channel subsystem images may beprovided, the CHPID values assigned to channel paths in each of thechannel path sets may not be unique. Therefore, each channel path isspecified by a unique address formed by, for instance, a concatenationof CSSID with the channel path identifier assigned to the channel path.The image ID (IID) further identifies a channel path image for eachconfigured channel path.

The performance of a computing environment is monitored to detect andcorrect inefficiencies in performance with a goal of improving systemperformance. In order to monitor system performance, measurement data iscollected and analyzed. Measurement data is also collected to facilitatein accounting, as well as capacity planning. As one example, measurementdata relating to I/O operations is colleted and stored in measurementblocks assigned to devices. For example, a measurement block is definedfor each subchannel for which measurement data is to be collected anddata is stored in the block by, for instance, the channel subsystemduring performance of one or more I/O operations.

In accordance with an aspect of the present invention, the

In accordance with an aspect of the present invention, the measurementblocks for the subchannels are located in discontiguous areas of mainreal storage, and are accessed by unique measurement block addresses. Byusing an address, the channel subsystem can directly access a channelmeasurement block without having to use a measurement block origin ormeasurement block index. Measurement blocks can be individuallyallocated or deallocated as subchannels are dynamically added orremoved, respectively. In one example, an address of a measurement blockis assigned to a subchannel via an instruction, such as a modifysubchannel instruction. This allows the channel subsystem to use theaddress to directly access the measurement block.

One example of a measurement block is described with reference to FIG.2. In this example, the measurement block has a 64 byte format and thus,is referred to herein as an extended measurement block. Some of thefields of the measurement block are further described in an IBMPublication entitled “z/Architecture Principles of Operation,”Publication No. SA22-7832-01, October 2001, which is hereby incorporatedherein by reference in its entirety. In one example, a measurement block200 includes the following fields:

-   -   a) SSCH+RSCH Count 202: This field is used as a counter during        performance of a start I/O function, such as a start subchannel        function, and/or resume function.    -   b) Sample Count 204: This field is used as a counter when the        time accumulation fields of the measurement block, described        below, are updated.    -   c) Device Connect Time 206: This field includes the accumulation        of measured device connect time intervals. The device connect        time interval is the sum of the time intervals measured whenever        the device is logically connected to a channel path, while the        subchannel is subchannel active and the device is actively        communicating with the channel path.    -   d) Function Pending Time 208: This field includes the        accumulated SSCH- and RSCH-function pending time. The function        pending time is the time interval between acceptance of the        start function (or resume function if the subchannel is in the        suspended state) at the subchannel and acceptance of the first        command associated with the initiation or resumption of channel        program execution at the device.    -   e) Device Disconnect Time 210: This field includes the        accumulated device disconnect time. The device disconnect time        is the sum of the time intervals measured whenever the device is        logically disconnected from the channel subsystem while the        subchannel is subchannel active. The device disconnect time also        includes the sum of control unit defer time intervals reported        by the device during the I/O operation.    -   f) Control Unit Queuing Time 212: This field includes the        accumulated control unit queuing time. Control unit queuing time        is the sum of the time intervals measured by the control unit        whenever the device is logically disconnected from the channel        subsystem during an I/O operation while the device is busy with        an operation initiated from a different system.    -   g) Device Active Only Time 214: This field includes the        accumulated device active only time. Device active only time is        the sum of the time intervals when the subchannel is device        active, but not subchannel active at the end of an I/O operation        or chain of I/O operations initiated by a start function or        resume function.    -   h) Device Busy Time 216: This field includes the accumulated        device busy time. Device busy time is the sum of the time        intervals when the subchannel is device busy during an attempt        to initiate a start function or resume function at the        subchannel. The device busy time field is updated such that a        bit (e.g., the last bit) represents, for instance, 128        microseconds. The accumulated value is modulo approximately        152.71 hours.    -   i) Initial Command Response Time 218: This field includes the        accumulated initial command response time for the subchannel.        The initial command response time for a start or resume function        is the time interval beginning from when the first command of        the channel program is sent to the device until the device        indicates it has accepted the command. The initial command        response time is stored at a resolution of, for instance, 128        microseconds. The accumulated value is modulo approximately        152.71 hours.

The information in an extended measurement block is accessible by theoperating system by using virtual addressing to locate the measurementblock in main memory.

In addition to obtaining the above described measurement data, data isalso obtained that is associated with one or more secondary queuesassociated with one or more subchannels. A secondary queue is a queue ofI/O requests that the channel subsystem has begun to process, but isunable to complete because of a busy condition in the I/O configuration.The channel subsystem stores data in the queue as it encounters busyconditions for the various I/O components associated with the I/Orequests.

One example of a secondary queue measurement block is described withreference to FIG. 3. In this example, the secondary queue measurementblock has a 64 word format and thus, is referred to herein as anextended secondary queue measurement block. In one example, an extendedsecondary queue measurement block 300 includes, for instance, thefollowing:

-   -   a) Queue Valid Indicator (B) 302: This indicator indicates        whether the specified secondary queue is valid. A secondary        queue is valid when it exists within the channel subsystem.    -   b) Queue Out Of Range (R) 304: This field indicates that the        specified secondary queue does not exist within the channel        subsystem and that any queue number greater than the specified        queue number also does not exist within the channel subsystem.    -   c) Queue Count 306: This field indicates the current length of a        specified secondary queue. The length of the queue is determined        by the number of subchannels on the associated secondary queue        that are function pending and are delayed because of busy        conditions.    -   d) Queue Number 308: This field includes the identity of the        secondary queue to which the information in this secondary queue        measurement block applies.    -   e) Summation of Queue Counts 310: This field includes an        accumulation of the queue count field. The queue count field is        added to the summation at the time a subchannel is added to the        specified secondary queue, and the count includes this addition        of the subchannel to the specified secondary queue.    -   f) Summation of Enqueues 312: This field includes a count of the        number of times a subchannel is added to the specified secondary        queue.    -   g) Summation of Channel Wait Time 314: This field includes the        summation of the channel wait time encountered by the channel        subsystem for each SSCH or RSCH function initiated to devices        attached to this secondary queue. The channel wait time for a        SSCH or RSCH function is that portion of the function pending        time that cannot be attributed to a control unit busy, device        busy or destination busy condition on a channel path. It is the        time interval between acceptance of the start or resume function        at the subchannel until the channel subsystem first attempts to        initiate the operation on a channel path. The summation of the        channel wait time is stored at a resolution of, for instance,        128 microseconds. The accumulated value is modulo approximately        152.71 hours.    -   h) Switch Busy Counts 316: This field includes a count of the        number of times an initial selection sequence for a start or        halt function resulted in a switch busy response on the        corresponding channel path. Each switch busy count field (e.g.,        0 to 7) corresponds one for one, by relative position, with the        path installed mask (PIM) bits of the subchannels associated        with the specified secondary queue. The path installed mask        indicates which of the channel paths 0-7 to an I/O device are        physically installed.    -   i. i) Control Unit Busy Counts 318: This field includes a count        of the number of times an initial selection sequence for a start        or halt function resulted in a control unit busy response on the        corresponding channel path. Each control unit busy count field        corresponds one for one, by relative position, with the PIM bits        of the subchannels associated with the specified secondary        queue.    -   j) Success Counts 320: The success counts fields include a count        of the number of times an initial selection sequence for a start        function resulted in the device accepting the first command of        the channel program on the corresponding channel path. Each        success count field corresponds one for one, by relative        position, with the PIM bits of the subchannels associated with        the specified secondary queue.    -   k) Control Unit Busy Time Fields 322: These fields include the        accumulated control unit busy time for the channel paths on a        specified secondary queue. Control unit busy time is accumulated        for a channel path from the time an initial selection sequence        for a start or halt receives a control unit busy indication        until a control unit end condition is recognized on the path.        The control unit busy time is stored at a resolution of, for        instance, 128 microseconds. The accumulated value is modulo        approximately 152.71 hours.    -   l) Initial Command Response Time Fields 324: These fields        include the accumulated initial command response time for start        or resume functions successfully initiated on the channel path        for the specified secondary queue. The initial command response        time for a start or resume function is the time interval        beginning from when the first command of the channel program is        sent to the device until the device indicates it has accepted        the command. The initial command response time is stored at a        resolution of, for instance, 128 microseconds. The accumulated        value is modulo approximately 152.71 hours.    -   m) Switch Busy Count Summation Fields 326: These fields include        a summation of the switch busy counts received for all        partitions for the corresponding channel path on the specified        secondary queue. Each switch busy count summation field        corresponds one for one, by relative position, with the PIM bits        of the subchannels associated with the specified secondary        queue.

In one example, the extended secondary queue measurement block isreturned as part of executing a command, such as a store secondary queuemeasurement data command. The store secondary queue measurement datacommand is used to obtain the measurement data for a range of secondaryqueues (e.g., logical control unit queues) maintained by the channelsubsystem. Information is returned to the program in the form of a 64word extended secondary queue measurement block. The informationreturned includes general queuing statistics and measurement informationfor each of the channels attached to the secondary queue (up to 8channels may be attached to a secondary queue, in one example).

One embodiment of a command request block for a store secondary queuemeasurement data command is described with reference to FIG. 4 a. In theexample described herein, it is assumed that the environment is alogical partitioned environment and that the multiple channel subsystemfacility is provided by the CPC. Since the multiple channel subsystemfacility is provided, the secondary queue measurement data for aspecified range of target queues is defined within a channel subsystemimage that is specified by the effective CSSID. In one example, acommand request block for the store secondary queue measurement datacommand 400 includes, for instance, the following:

-   -   a) Length Field 402: This field specifies the length of the        command request block.    -   b) Command Code 404: This field specifies the store secondary        queue measurement data command.    -   c) Multiple Channel Subsystem Bit (M) 406: This field indicates        that the CSSID field is to be checked for a valid CSSID. If        valid, the value in the CSSID field becomes the effective CSSID.        If not valid, then a response code may be stored. When M is        zero, the default CSSID is the effective CSSID, and the CSSID        field is to be zero.    -   d) MIF Image ID (IID) 408: This field is set to zeros.    -   e) Extended I/O Measurement Block Format (E) 410: This field        specifies the format of the response block that is to be stored        in response to the command request. In one example, a format of        one indicates the extended channel secondary queue measurement        block.    -   f) Format (FMT) 412: This field indicates the command request        format field whose value specifies the layout of the command        request block. In one example, the value of this field is zero.    -   g) First Queue Number 414: This field specifies the first        secondary queue for which information is requested.    -   h) CSSID 416: This field includes the CSSID of the channel        subsystem image that is associated with the specified range of        target queues. The CSSID is subject to range, existence and        authorization checking.    -   i) Last Queue Number 418: This field specifies the last        secondary queue for which information is requested.    -   j) Last Request 420: This field when set indicates that this is        the last request for measurement data for the specified        secondary queues.

One embodiment of a command response block for the store secondary queuemeasurement data command is depicted in FIG. 4 b. In one example, acommand response block 440 for a store secondary queue measurement datacommand includes the following fields:

-   -   a) Length Field 442: This field specifies the length of the        command response block. The length depends, for instance, on the        response code that is stored as a result of the attempt to        execute the store secondary queue measurement data command.    -   b) Response Code 444: This field describes the results of the        attempt to execute the store secondary queue measurement data        command.    -   c) Format 446: This field includes a value that specifies the        layout of the command response block. In one example, the value        is one indicating a Format 1 command response block, which        corresponds to an extended block of, for instance, 64 words.    -   d) Secondary Queue Measurement Block(s) 448: In one example, up        to 15 Format 1 secondary queue measurement blocks are stored in        the response data area of the command response block. The number        of secondary queue measurement blocks stored depends on, for        instance, the number of secondary queues in the range specified        in the command response block; conditions in the channel        subsystem; and the channel subsystem model.

At least one secondary queue measurement block is stored and the actualnumber of blocks stored is determined by subtracting 8 bytes from thesize of the command response block and dividing by the size of each ofthe secondary queue measurement blocks stored, as indicated by theformat field in the command response block.

As described above, extended measurement blocks provide various kinds ofmeasurements used in performing workload and/or performance tuning onvarious machines. For compatibility with some operating systems, ameasurement block format field is added to the subchannel to indicatewhether a non-extended format or the new extended format measurementblock is to be stored for a subchannel. Similarly, as described above, afield in the store secondary queue measurement data command (e.g.,extended I/O measurement block format (E) 410) is used to request thatthe extended response block be stored for the command.

In addition to the extended I/O measurement block facility, an extendedI/O measurement word facility is provided, in accordance with a furtheraspect of the present invention. This facility facilitates the efficientobtaining of measurement data for a single I/O operation. It enables amachine to return measurement data to the program (e.g., operatingsystem) for a given I/O operation without requiring the program tocalculate the data for that I/O operation. In one example, the extendedI/O measurement word facility is enabled in the z/Architecture byexecuting a command that conveys information for a program to thechannel subsystem. The command includes an operation code that specifiesthe particular operation (e.g., enable the extended I/O measurement wordfacility) to be performed.

The measurement information for a particular I/O operation is storedinto an extended measurement word (EMW). One embodiment of an extendedmeasurement word is described with reference to FIG. 5. In one example,an extended measurement word 500 includes, for instance, the following:

-   -   a) Device Connect Time 502: This field includes the accumulation        of measured device connect time intervals. The device connect        time interval is the sum of the time intervals measured whenever        the device is logically connected to a channel path, while the        subchannel is subchannel active and the device is actively        communicating with the channel path.    -   b) Function Pending Time 504: This field includes the        accumulated SSCH- and RSCH-function pending time. The function        pending time is the time interval between acceptance of the        start function (or resume function if the subchannel is in the        suspended state) at the subchannel and acceptance of the first        command associated with the initiation or resumption of channel        program execution at the device.    -   c) Device Disconnect Time 506: This field includes the        accumulated device disconnect time. The device disconnect time        is the sum of the time intervals measured whenever the device is        logically disconnected from the channel subsystem while the        subchannel is subchannel active. The device disconnect time also        includes the sum of control unit defer time intervals reported        by the device during the I/O operation.    -   d) Control Unit Queuing Time 508: This field includes the        accumulated control unit queuing time. Control unit queuing time        is the sum of the time intervals measured by the control unit        whenever the device is logically disconnected from the channel        subsystem during an I/O operation while the device is busy with        an operation initiated from a different system.    -   e) Device Active Only Time 510: This field includes the        accumulated device active only time. Device active only time is        the sum of the time intervals when the subchannel is device        active, but not subchannel active at the end of an I/O operation        or chain of I/O operations initiated by a start function or        resume function.    -   f) Device Busy Time 511: This field includes the accumulated        device busy time. Device busy time is the sum of the time        intervals when the subchannel is device busy during an attempt        to initiate a start function or resume function at the        subchannel.    -   g) Initial Command Response Time 512: This field includes the        accumulated initial command response time for the subchannel.        The initial command response time for a start or resume function        is the time interval beginning from when the first command of        the channel program is sent to the device until the device        indicates it has accepted the command.

The extended measurement word eliminates the need for the program tofetch the channel measurement block both before and after an I/Ooperation in order to calculate the measurement data for that specificoperation. In one example, each measurement field in the EMW may bestored with a time resolution of as low as one-half microsecond (via thelow order bits of the counters) to provide the accuracy desired formeasurements associated with a single I/O operation. For example, thechannel subsystem timing facility provides a timer with a resolutionthat is appropriate for the speed of the I/O operations supported by thesubsystem. The extended measurement word is returned in an interruptionresponse block (IRB) obtained by issuing, for instance, a testsubchannel instruction. General register 1, which is an implied operandfor the instruction, includes the subsystem identification word thatdesignates the subchannel for which the information is to be stored. Thesecond operand address designated in the instruction is the logicaladdress of the IRB. The interruption response block includes, forinstance, a subchannel status word, an extended status word, an extendedcontrol block and the extended measurement word. Further detailsregarding an IRB and the test subchannel instruction, without theextensions of the present invention, are described in an IBM Publicationentitled “z/Architecture Principles of Operation,” Publication No.SA22-7832-01, October 2001, which is hereby incorporated herein byreference in its entirety.

One embodiment of the logic associated with obtaining the extendedmeasurement word, in accordance with an aspect of the present invention,is described with reference to FIG. 6. Initially, an I/O operation, suchas a start subchannel instruction, is executed, STEP 600. Duringprocessing of the I/O operation, measurement data is obtained by thechannel subsystem, STEP 602. In one example, the types of data that areobtained are those described in the extended measurement word describedabove. In other examples, the types of data stored may be different. Theactual calculation of the data can be performed in various ways, asknown to those skilled in the art.

The measurement data that is collected is saved in the subchannel, STEP604. In one example, it is stored in an internal control block withinthe subchannel. In response to completion of the I/O operation, an I/Ointerrupt is generated, STEP 606. When the program (e.g., the operatingsystem) detects the interrupt, it issues a test subchannel instruction,STEP 608. The test subchannel instruction pulls the information from thesubchannel control block and places it in the EMW which is returned aspart of the IRB, STEP 610. The extended measurement word includes I/Omeasurement information for the most recent start or resume operationperformed at the subchannel. Thus, this enables data to be provided fora single I/O operation. Each field in the EMW, when valid, includes acount in which each increment of the count represents a value of, forinstance, 0.5 microseconds.

For compatibility with other operating systems, an extended measurementword enable field is added to the subchannel to indicate whether theextended measurement word should be stored in the IRB. When the enablefield indicates the subchannel is enabled for extended measurement wordmode, measurement data is stored in the EMW at the time channel programexecution is completed, or suspended at the subchannel or completed atthe device, as appropriate.

Described in detail above are measurement facilities that facilitate theobtaining of measurement data associated with subchannels of a channelsubsystem. Advantageously, the extended I/O measurement facility allowsfor additional measurement information to be stored and removes the needto allocate a single contiguous channel measurement block area in mainreal storage. Instead, each subchannel is assigned a unique measurementblock address that identifies the location of a channel measurementblock for the associated device. Use of this facility allows the channelsubsystem to directly access the channel measurement blocks withouthaving to use measurement block origins and measurement block indexes tolocate the measurement blocks.

The extended I/O measurement word facility advantageously enables theefficient obtaining of measurement data for a single operation. Iteliminates the need for the program to fetch the channel measurementblock both before and after an I/O operation in order to calculate themeasurement data for that specific operation. Additionally, it allowsthe storing of data to be within a time resolution of approximately aslow as one-half microsecond, depending on the capabilities of thechannel subsystem.

Although various embodiments are described above, these are onlyexamples. Additions, deletions and/or modifications to the aboveembodiments may be made, without departing from the spirit of aspects ofthe present invention. For instance, although a computing environment isdescribed above, many different computing environments may be used. Forinstance, more or less logical partitions (or other zones) may beincluded in the environment. Further, one or more partitions can berunning in different architecture modes. Further, there may be multiplecentral processing complexes coupled together. These are just some ofthe variations that can be made without departing from the spirit fromthe present invention. Other variations are possible. For example, acomputing environment that includes a plurality of multiple channelsubsystems, one or more of which include multiple images, may beprovided. Also, the computing environment need not be based on thez/Architecture. Further, an environment may be provided that does notinclude logical partitioning and/or MCSS.

Moreover, an environment may include an emulator (e.g., software orother emulation mechanisms), in which a particular architecture orsubset thereof, is emulated. In such an environment, one or moreemulation functions of the emulator can implement one or more aspects ofthe present invention, even though a computer executing the emulator mayhave a different architecture than the capabilities being emulated. Asone example, in emulation mode, the specific instruction or operationbeing emulated is decoded, and an appropriate emulation function isbuilt to implement the individual instruction or operation.

Yet further, even though in the above embodiments, a channel pathincludes a control unit, this is not necessary. A channel path may notconnect to a control unit or a device, such as with Ethernet channelpaths or channel to channel adapters, as examples. These types ofchannel paths, as well as others are within the spirit of one or moreaspects of the present invention.

As yet another example, although an LPAR hypervisor is given as anexample, other hypervisors, such as a virtual machine hypervisor, aswell as others, may be used.

Additionally, although the commands described herein have variousfields, more, less or different fields may be provided. Further, thepositions of the fields in the figures do not necessarily indicate theposition within a control block. Other positions may be available.Similarly, although in some contexts, specific bytes or bits aredescribed, these are only examples. Other bytes or bits may be used.Further, other sizes may be provided.

Moreover, although the measurement blocks are associated withsubchannels in the examples provided herein, in other examples, themeasurement blocks may be associated with other components of the I/Osubsystem.

The above are only some examples of the enhancements/modifications thatcan be made. Others are possible without departing from the spirit ofone or more aspects of the present invention.

The present invention can be included in an article of manufacture(e.g., one or more computer program products) having, for instance,computer usable media. The media has embodied therein, for instance,computer readable program code means or logic (e.g., instructions, code,commands, etc.) to provide and facilitate the capabilities of thepresent invention. The article of manufacture can be included as a partof a computer system or sold separately.

Additionally, at least one program storage device readable by a machineembodying at least one program of instructions executable by the machineto perform the capabilities of the present invention can be provided.

The diagrams depicted herein are just examples. There may be manyvariations to these diagrams or the steps (or operations) describedtherein without departing from the spirit of the invention. Forinstance, the steps may be performed in a differing order, or steps maybe added, deleted or modified. All of these variations are considered apart of the claimed invention.

Although preferred embodiments have been depicted and described indetail herein, it will be apparent to those skilled in the relevant artthat various modifications, additions, substitutions and the like can bemade without departing from the spirit of the invention and these aretherefore considered to be within the scope of the invention as definedin the following claims.

1. A method for obtaining I/O measurement queue data in a computersystem, the method comprising: obtaining measurement data, themeasurement data related to a plurality of secondary queues (logicalcontrol unit queues) of a channel subsystem, the measurement datacomprising queuing statistics and measurement information for one ormore channels attached to the plurality of secondary queues; executing astore secondary queue measurement data instruction having a commandrequest block, the command request block comprising informationspecifying a range of secondary queues of the plurality of secondaryqueues; for each secondary queue of the specified range of secondaryqueues, creating one or more extended secondary measurement blocks, theextended secondary measurement blocks comprising the measurement data;in response to executing the store secondary queue measurement datainstruction, storing the created one or more extended secondarymeasurement blocks at a memory address block directly specified by thestore secondary queue measurement data instruction.
 2. The methodaccording to claim 1 wherein the command request block informationspecifying the range comprises a first queue number, a last queuenumber.
 3. The method according to claim 1 wherein the command requestblock information comprises a length field, a command code, a multiplechannel subsystem bit, a MIF image ID, an extended I/O measurement blockformat, a format, a first queue number, a CSSID, a last queue number anda last request.
 4. The method according to claim 1 whereineach createdextended secondary queue measurement block consists of any one of aqueue valid indicator field, a queue out of range field, a queue countfield, a queue number field, a summation of queue counts field, asummation of enqueues field, a summation of channel wait time field, aswitch busy counts field, a control unit busy counts field, a successcounts field, one or more control unit busy time fields, one or moreinitial command response time fields or one or more switch busy countsummation fields.
 5. The method according to claim 1 whereineach createdextended secondary queue measurement block comprises a queue validindicator field, a queue out of range field, a queue count field, aqueue number field, a summation of queue counts field, a summation ofenqueues field, a summation of channel wait time field, a switch busycounts field, a control unit busy counts field, a success counts field,one or more control unit busy time fields, one or more initial commandresponse time fields and one or more switch busy count summation fields.6. The method according to claim 1 wherein the storing the created oneor more extended secondary measurement blocks step comprises the furtherstep of storing a length field, a response code and a format at thememory address block specified by the store secondary queue measurementdata instruction, the length field specifying the length of the memoryaddress block.
 7. The method according to claim 1 wherein the specifiedrange of secondary queues is defined within a channel subsystem image,the channel subsystem image specified by an effective CSSD.
 8. Themethod according to claim 1 comprising the further step of: determininga number of the one or more secondary queue measurement blocks stored byperforming the further steps of: subtracting 8 bytes from size of thecommand response block; and dividing the result of the subtracting stepby the size of a secondary queue measurement block.
 9. The methodaccording to claim 1 comprising the further steps of: in response toexecuting a modify subchannel instruction, storing a measurement blockaddress of a subchannel of a channel subsystem, the measurement blockaddress directly specifying a location in memory of a measurement blockassigned to the subchannel; obtaining measurement data the measurementdata related to the performance of the I/O operation of the subchannel,the measurement data comprising device busy time, wherein device busytime is the sum of time intervals when a subchannel is device busyduring an attempt to initiate any one of a start function or a resumefunction at the subchannel; storing the obtained measurement datacomprising a device busy time in the measurement block specified by themeasurement block address, the measurement block comprising a devicebusy time field.
 10. The method according to claim 1 comprising thefurther steps of: in response to executing a start subchannelinstruction, starting an I/O operation process; obtaining I/Omeasurement data associated with the performance of the I/O operationprocess during the I/O operation process; saving the obtained I/Omeasurement data; generating an I/O interrupt at the completion of theI/O operation process; in response to executing a test subchannelinstruction, storing the obtained I/O measurement data in an IRB memorylocation specified by the test subchannel instruction.
 11. A computerprogram product for obtaining I/O measurement queue data, The computerprogram product comprising: a storage medium readable by a processingcircuit and storing instructions for execution by the processing circuitfor performing a method comprising: obtaining measurement data, themeasurement data related to a plurality of secondary queues (logicalcontrol unit queues) of a channel subsystem, the measurement datacomprising queuing statistics and measurement information for one ormore channels attached to the plurality of secondary queues; executing astore secondary queue measurement data instruction having a commandrequest block, the command request block comprising informationspecifying a range of secondary queues of the plurality of secondaryqueues; for each secondary queue of the specified range of secondaryqueues, creating one or more extended secondary measurement blocks, theextended secondary measurement blocks comprising the measurement data;in response to executing the store secondary queue measurement datainstruction, storing the created one or more extended secondarymeasurement blocks at a memory address block directly specified by thestore secondary queue measurement data instruction.
 12. The computerprogram product according to claim 11 wherein the command request blockinformation specifying the range comprises a first queue number, a lastqueue number.
 13. The computer program product according to claim 11wherein the command request block information comprises a length field,a command code, a multiple channel subsystem bit, a MIF image ID, anextended I/O measurement block format, a format, a first queue number, aCSSID, a last queue number and a last request.
 14. The computer programproduct according to claim 11 whereineach created extended secondaryqueue measurement block consists of any one of a queue valid indicatorfield, a queue out of range field, a queue count field, a queue numberfield, a summation of queue counts field, a summation of enqueues field,a summation of channel wait time field, a switch busy counts field, acontrol unit busy counts field, a success counts field, one or morecontrol unit busy time fields, one or more initial command response timefields or one or more switch busy count summation fields.
 15. Thecomputer program product according to claim 11 whereineach createdextended secondary queue measurement block comprises a queue validindicator field, a queue out of range field, a queue count field, aqueue number field, a summation of queue counts field, a summation ofenqueues field, a summation of channel wait time field, a switch busycounts field, a control unit busy counts field, a success counts field,one or more control unit busy time fields, one or more initial commandresponse time fields and one or more switch busy count summation fields.16. The computer program product according to claim 11 wherein thestoring the created one or more extended secondary measurement blocksstep comprises the further step of storing a length field, a responsecode and a format at the memory address block specified by the storesecondary queue measurement data instruction, the length fieldspecifying the length of the memory address block.
 17. The computerprogram product according to claim 11 wherein the specified range ofsecondary queues is defined within a channel subsystem image, thechannel subsystem image specified by an effective CSSD.
 18. The computerprogram product according to claim 11 comprising the further step of:determining a number of the one or more secondary queue measurementblocks stored by performing the further steps of: subtracting 8 bytesfrom size of the command response block; and dividing the result of thesubtracting step by the size of a secondary queue measurement block. 19.A system for obtaining I/O measurement queue data, The systemcomprising: a memory; a computer system in communication with thememory, The computer system comprising an instruction fetching unit forfetching instructions from memory and one or more execution units forexecuting fetched instructions; wherein The computer system includesinstructions to execute a method comprising: obtaining measurement data,the measurement data related to a plurality of secondary queues (logicalcontrol unit queues) of a channel subsystem, the measurement datacomprising queuing statistics and measurement information for one ormore channels attached to the plurality of secondary queues; executing astore secondary queue measurement data instruction having a commandrequest block, the command request block comprising informationspecifying a range of secondary queues of the plurality of secondaryqueues; for each secondary queue of the specified range of secondaryqueues, creating one or more extended secondary measurement blocks, theextended secondary measurement blocks comprising the measurement data;in response to executing the store secondary queue measurement datainstruction, storing the created one or more extended secondarymeasurement blocks at a memory address block directly specified by thestore secondary queue measurement data instruction.
 20. The systemaccording to claim 19 wherein the command request block informationspecifying the range comprises a first queue number, a last queuenumber.
 21. The system according to claim 19 wherein the command requestblock information comprises a length field, a command code, a multiplechannel subsystem bit, a MIF image ID, an extended I/O measurement blockformat, a format, a first queue number, a CSSID, a last queue number anda last request.
 22. The system according to claim 19 whereineach createdextended secondary queue measurement block consists of any one of aqueue valid indicator field, a queue out of range field, a queue countfield, a queue number field, a summation of queue counts field, asummation of enqueues field, a summation of channel wait time field, aswitch busy counts field, a control unit busy counts field, a successcounts field, one or more control unit busy time fields, one or moreinitial command response time fields or one or more switch busy countsummation fields.
 23. The system according to claim 19 whereineachcreated extended secondary queue measurement block comprises a queuevalid indicator field, a queue out of range field, a queue count field,a queue number field, a summation of queue counts field, a summation ofenqueues field, a summation of channel wait time field, a switch busycounts field, a control unit busy counts field, a success counts field,one or more control unit busy time fields, one or more initial commandresponse time fields and one or more switch busy count summation fields.24. The system according to claim 19 wherein the storing the created oneor more extended secondary measurement blocks step comprises the furtherstep of storing a length field, a response code and a format at thememory address block specified by the store secondary queue measurementdata instruction, the length field specifying the length of the memoryaddress block.
 25. The system according to claim 19 wherein thespecified range of secondary queues is defined within a channelsubsystem image, the channel subsystem image specified by an effectiveCSSD.
 26. The system according to claim 19 comprising the further stepof: determining a number of the one or more secondary queue measurementblocks stored by performing the further steps of: subtracting 8 bytesfrom size of the command response block; and dividing the result of thesubtracting step by the size of a secondary queue measurement block.